Add Copilot preference for a chat's custom instructions loading (from all projects or from referenced projects only)#136
Conversation
7c28fcc to
8c9cc48
Compare
|
Hi @iloveeclipse, |
There was a problem hiding this comment.
Pull request overview
This PR adds a new chat preference to control how project-level Copilot custom instructions are scoped when starting a chat, so Eclipse can avoid loading unrelated projects’ instruction files and reduce the prompt bloat behind issue #62.
Changes:
- Added a persisted
CustomInstructionsChatLoadScopepreference with UI labels/defaults for chat instruction loading. - Derived workspace folders from selected/current resources in
ChatViewand threaded that list into conversation creation. - Added enum/helper tests and
ResourceUtilscoverage for workspace-folder derivation.
Reviewed changes
Copilot reviewed 11 out of 11 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
com.microsoft.copilot.eclipse.ui/src/com/microsoft/copilot/eclipse/ui/utils/ResourceUtils.java |
Adds helper to derive distinct accessible workspace folders from selected resources. |
com.microsoft.copilot.eclipse.ui/src/com/microsoft/copilot/eclipse/ui/preferences/messages.properties |
Adds user-facing labels for the new chat instruction scope preference. |
com.microsoft.copilot.eclipse.ui/src/com/microsoft/copilot/eclipse/ui/preferences/Messages.java |
Exposes new NLS message keys. |
com.microsoft.copilot.eclipse.ui/src/com/microsoft/copilot/eclipse/ui/preferences/CustomInstructionPreferencePage.java |
Adds the new combo box to the preferences UI and persists the selection. |
com.microsoft.copilot.eclipse.ui/src/com/microsoft/copilot/eclipse/ui/preferences/CopilotPreferenceInitializer.java |
Sets the default chat instruction scope preference. |
com.microsoft.copilot.eclipse.ui/src/com/microsoft/copilot/eclipse/ui/chat/ChatView.java |
Derives scoped workspace folders before creating a new conversation. |
com.microsoft.copilot.eclipse.ui.test/src/com/microsoft/copilot/eclipse/ui/utils/ResourceUtilsTest.java |
Adds tests for workspace-folder derivation behavior. |
com.microsoft.copilot.eclipse.ui.test/META-INF/MANIFEST.MF |
Adds JUnit params dependency for new parameterized tests. |
com.microsoft.copilot.eclipse.core/src/com/microsoft/copilot/eclipse/core/lsp/CopilotLanguageServerConnection.java |
Adds a createConversation overload that accepts scoped workspace folders. |
com.microsoft.copilot.eclipse.core/src/com/microsoft/copilot/eclipse/core/Constants.java |
Defines the new preference key and enum values/default. |
com.microsoft.copilot.eclipse.core.test/src/com/microsoft/copilot/eclipse/core/CustomInstructionsChatLoadScopeTest.java |
Adds enum serialization/deserialization tests. |
Correct. |
f90fdfc to
6728703
Compare
|
Hi @iloveeclipse,
I've adapted the code to retrieve custom instructions from selected files on each conversation turn, i.e. each time a new prompt is sent to the LS. |
cf9a3ce to
66a07f1
Compare
b897069 to
54024bc
Compare
54024bc to
6fd6559
Compare
|
I have no more comments. @iloveeclipse could you help validate with this patch, your project setup will work as expected? |
I hope to get some time next week for that. |
|
@travkin79 Let's wait for the confirmation, thanks. |
This PR fixes issue #62 according to the comment #62 (comment)
The PR
CopilotLanguageServerConnection), i.e.Preference page preview (new group highlighted):
